var Module = {};
Module["asm"] = (function(global, env, buffer) {
 "use asm";
 var HEAP8 = new global.Int8Array(buffer);
 var HEAP16 = new global.Int16Array(buffer);
 var HEAP32 = new global.Int32Array(buffer);
 var HEAPU8 = new global.Uint8Array(buffer);
 var HEAPU16 = new global.Uint16Array(buffer);
 var HEAPU32 = new global.Uint32Array(buffer);
 var HEAPF32 = new global.Float32Array(buffer);
 var HEAPF64 = new global.Float64Array(buffer);
 var STACKTOP = env.STACKTOP | 0;
 var _atoi = env._atoi;
 var _strlen = env._strlen;
 var __Znaj = env.__Znaj;
 var _puts = env._puts;
 var _memcpy = env._memcpy;
 var __ZdaPv = env.__ZdaPv;
 var __ZdlPv = env.__ZdlPv;
 function _emscripten_replace_memory(newBuffer) {
  if (byteLength(newBuffer) & 16777215 || byteLength(newBuffer) <= 16777215 || byteLength(newBuffer) > 2147483648) return false;
  HEAP8 = new Int8View(newBuffer);
  HEAP16 = new Int16View(newBuffer);
  HEAP32 = new Int32View(newBuffer);
  HEAPU8 = new Uint8View(newBuffer);
  HEAPU16 = new Uint16View(newBuffer);
  HEAPU32 = new Uint32View(newBuffer);
  HEAPF32 = new Float32View(newBuffer);
  HEAPF64 = new Float64View(newBuffer);
  buffer = newBuffer;
  return true;
 }
 function _main(i1, i2) {
  i1 = i1 | 0;
  i2 = i2 | 0;
  var d3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0;
  i12 = STACKTOP;
  STACKTOP = STACKTOP + 4240 | 0;
  i9 = i12 + 2120 | 0;
  i11 = i12;
  if ((i1 | 0) > 1) i10 = _atoi(HEAP32[i2 + 4 >> 2] | 0) | 0; else i10 = 512;
  i8 = __Znaj(347) | 0;
  _memcpy(i8 | 0, 520, 287) | 0;
  i1 = i8 + 287 | 0;
  i2 = 520;
  i4 = i1 + 60 | 0;
  do {
   HEAP8[i1 >> 0] = HEAP8[i2 >> 0] | 0;
   i1 = i1 + 1 | 0;
   i2 = i2 + 1 | 0;
  } while ((i1 | 0) < (i4 | 0));
  i1 = i10 << 1;
  if (i1) {
   i2 = 0;
   while (1) {
    i7 = i1 >>> 0 < 60 ? i1 : 60;
    i4 = __Znaj(i7 + 2 | 0) | 0;
    _memcpy(i4 | 0, i8 + i2 | 0, i7 | 0) | 0;
    HEAP8[i4 + i7 >> 0] = 0;
    i5 = _strlen(i4 | 0) | 0;
    i6 = HEAP32[128] | 0;
    if ((i5 | 0) > (i6 | 0)) {
     if ((i6 | 0) > 0) {
      HEAP8[i4 + i6 >> 0] = 0;
      _puts(i4 | 0) | 0;
      HEAP32[128] = 0;
     }
    } else {
     _puts(i4 | 0) | 0;
     HEAP32[128] = (HEAP32[128] | 0) - i5;
    }
    __ZdlPv(i4 | 0);
    i2 = i7 + i2 | 0;
    if ((i1 | 0) == (i7 | 0)) break; else {
     i1 = i1 - i7 | 0;
     i2 = i2 >>> 0 > 287 ? i2 + -287 | 0 : i2;
    }
   }
  }
  __ZdaPv(i8 | 0);
  if (!(HEAP32[2] | 0)) {
   i1 = 8;
   i2 = 0;
  } else {
   i1 = 8;
   d3 = 0;
   do {
    i8 = i1 + 8 | 0;
    d3 = d3 + +HEAPF64[i8 >> 3];
    d13 = d3 < 1 ? d3 : 1;
    HEAPF64[i8 >> 3] = d13;
    HEAP32[i1 + 16 >> 2] = ~~(d13 * 512) >>> 0;
    i1 = i1 + 24 | 0;
   } while ((HEAP32[i1 >> 2] | 0) != 0);
   i1 = 8;
   i2 = 0;
  }
  do {
   while (1) {
    i8 = HEAP32[i1 + 16 >> 2] | 0;
    if (i2 >>> 0 > i8 >>> 0 & (i8 | 0) != 0) i1 = i1 + 24 | 0; else break;
   }
   HEAP32[i9 + (i2 << 2) >> 2] = i1;
   i2 = i2 + 1 | 0;
  } while ((i2 | 0) != 513);
  HEAP32[i9 + 2116 >> 2] = 0;
  i1 = i10 * 3 | 0;
  if (i1) while (1) {
   i2 = i1 >>> 0 < 60 ? i1 : 60;
   __ZN10Randomized9writelineEj(i9, i2);
   if ((i1 | 0) == (i2 | 0)) break; else i1 = i1 - i2 | 0;
  }
  if (!(HEAP32[98] | 0)) {
   i1 = 392;
   i2 = 0;
  } else {
   i1 = 392;
   d3 = 0;
   do {
    i9 = i1 + 8 | 0;
    d3 = d3 + +HEAPF64[i9 >> 3];
    d13 = d3 < 1 ? d3 : 1;
    HEAPF64[i9 >> 3] = d13;
    HEAP32[i1 + 16 >> 2] = ~~(d13 * 512) >>> 0;
    i1 = i1 + 24 | 0;
   } while ((HEAP32[i1 >> 2] | 0) != 0);
   i1 = 392;
   i2 = 0;
  }
  do {
   while (1) {
    i9 = HEAP32[i1 + 16 >> 2] | 0;
    if (i2 >>> 0 > i9 >>> 0 & (i9 | 0) != 0) i1 = i1 + 24 | 0; else break;
   }
   HEAP32[i11 + (i2 << 2) >> 2] = i1;
   i2 = i2 + 1 | 0;
  } while ((i2 | 0) != 513);
  HEAP32[i11 + 2116 >> 2] = 0;
  i1 = i10 * 5 | 0;
  if (!i1) {
   STACKTOP = i12;
   return 0;
  }
  while (1) {
   i2 = i1 >>> 0 < 60 ? i1 : 60;
   __ZN10Randomized9writelineEj(i11, i2);
   if ((i1 | 0) == (i2 | 0)) break; else i1 = i1 - i2 | 0;
  }
  STACKTOP = i12;
  return 0;
 }
 function __ZN10Randomized9writelineEj(i5, i2) {
  i5 = i5 | 0;
  i2 = i2 | 0;
  var i1 = 0, i3 = 0, d4 = 0, d6 = 0;
  if (i2) {
   i3 = 0;
   do {
    i1 = ((((HEAP32[129] | 0) * 3877 | 0) + 29573 | 0) >>> 0) % 139968 | 0;
    HEAP32[129] = i1;
    d6 = +(i1 >>> 0) / 139968;
    d4 = d6;
    i1 = HEAP32[i5 + (~~(d6 * 512) >>> 0 << 2) >> 2] | 0;
    while (1) if (+HEAPF64[i1 + 8 >> 3] < d4) i1 = i1 + 24 | 0; else break;
    HEAP8[i5 + 2052 + i3 >> 0] = HEAP32[i1 >> 2];
    i3 = i3 + 1 | 0;
   } while ((i3 | 0) != (i2 | 0));
  }
  HEAP8[i5 + 2052 + i2 >> 0] = 10;
  i1 = i2 + 1 | 0;
  HEAP8[i5 + 2052 + i1 >> 0] = 0;
  HEAP32[i5 + 2116 >> 2] = i1;
  i1 = i5 + 2052 | 0;
  i2 = _strlen(i1 | 0) | 0;
  i3 = HEAP32[128] | 0;
  if ((i2 | 0) <= (i3 | 0)) {
   _puts(i1 | 0) | 0;
   HEAP32[128] = (HEAP32[128] | 0) - i2;
   return;
  }
  if ((i3 | 0) <= 0) return;
  HEAP8[i5 + 2052 + i3 >> 0] = 0;
  _puts(i1 | 0) | 0;
  HEAP8[(HEAP32[128] | 0) + (i5 + 2052) >> 0] = 122;
  HEAP32[128] = 0;
  return;
 }
 return {
  _main: _main,
  _emscripten_replace_memory: _emscripten_replace_memory
 };
});



